﻿using System;
using Microsoft.Xna.Framework;
namespace XNAProjectLibrary
{
    public interface IGameState                                         //gamestate interface, allows objects to behave as
    {                                                                   //gamestates if they implement these function and 
        GameState Value { get; }                                        //they are derived from IGameState
    }

    public interface IGameStateManager
    {
        event EventHandler OnStateChange;                               //"specifications"
        GameState State { get; }
        void PopState();
        void PushState(GameState state);
        bool ContainsState(GameState state);
        void ChangeState(GameState newState);
    }
}
